import fs from "fs";
import pinyin from "pinyin";

// 要转换的文本
const text = `
其实你在很久以前并不喜欢牡丹，因为它总被人作为富贵膜拜。后来你目睹了一次牡丹的落花，你相信所有的人都会为之感动:一阵清风徐来，娇艳鲜嫩的盛期牡丹忽然整朵整朵地坠落，铺撒一地绚丽的花瓣。那花瓣落地时依然鲜艳夺目，如同一只奉上祭坛的大鸟脱落的羽毛，低吟着壮烈的悲歌离去。
牡丹没有花谢花败之时，要么烁于枝头，要么归于泥土，它跨越萎顿和衰老，由青春而死亡，由美丽而消遁。它虽美却不吝惜生命，即使告别也要展示给人最后一次的惊心动魄。
所以在这阴冷的四月里，奇迹不会发生。任凭游人扫兴和诅咒，牡丹依然安之若素。它不苟且、不俯就、不妥协、不媚俗，甘愿自己冷落自己。它遵循自己的花期自己的规律，它有权利为自己选择每年一度的盛大节日。它为什么不拒绝寒冷?
天南海北的看花人，依然络绎不绝地涌入洛阳城。人们不会因牡丹的拒绝而拒绝它的美。如果它再被贬谪十次，也许它就会繁衍出十个洛阳牡丹城。
于是你在无言的遗憾中感悟到，富贵与高贵只是一字之差。同人一样,花儿也是有灵性的，更有品位之高低。品位这东西为气为魂为……
`;

// 将文本转换为带有拼音的HTML字符串
function convertToHTML(text) {
  const words = text.split('');
  let html = '';

  for (let word of words) {
    // 获取每个字的拼音数组
    const pinyinArray = pinyin(word, {
      // style: pinyin.STYLE_NORMAL,
      segment: "@node-rs/jieba",
    });

    // 将拼音数组转换为拼音字符串
    const pinyinString = pinyinArray.map((item) => item[0]).join(' ');

    // 构建HTML标签
    html += `<span class="word"><ruby>${word}<rt>${pinyinString}</rt></ruby></span>`;
  }

  return html;
}

// 构建HTML文件
function buildHTMLFile(html) {
  const template = `
<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="UTF-8">
    <title>文本转换为拼音HTML</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  </head>
  <style>
    .word {
      padding: 10px 5px;
      display: inline-block;
    }
  </style>
  <body>
    ${html}
  </body>
</html>
  `;

  // 将HTML写入文件
  fs.writeFile('index.html', template, (err) => {
    if (err) {
      console.error('写入文件时发生错误:', err);
    } else {
      console.log('成功生成HTML文件！');
    }
  });
}

// 调用函数进行转换和构建
const html = convertToHTML(text);
buildHTMLFile(html);

